Individual: 'Process Lineage Analysis'
- "Access Control Configuration"
- http://dbpedia.org/resource/Access-control_list

- "Adversaries sometimes modify object access rights at the operating system level. There are varying motivations behind this action - they may not want some files/objects to be changed on systems for persistence reasons and therefore provide admin only rights; also, they may want files to be accessible with lower levels of permissions."
- "Reference - CAR-2019-07-001: Access Permission Modification - MITRE"
- "CAR-2019-07-001: Access Permission Modification"
- http://dbpedia.org/resource/Access_token

- "The process of temporarily disabling user accounts on a system or domain."
- "## How it works
Management servers with enterprise policies for account management provide the ability to enable and disable account for given rules. The rules may include specific periods of time (eg. weekend, plant shutdown, leave periods), specific user types or groups, or individual users.
## Considerations
* Local accounts caches vs centralized account management
* Single Sign-on
* Role based vs Attribute based systems
## Examples of account configuration stores
* Directory Services
* Active Directory
* RADIUS
* LDAP
* Oracle User Account Management
* JumpCloud"
- "Actively collecting PKI certificates by connecting to the server and downloading its server certificates for analysis."
- "## How it works
Analysis of server certificates using active methods to detect if certificates have been misconfigured or spoofed by using elements of the certificate, certificate authorities and signatures.
### Certificate validity analysis
This can be accomplished by verifying the digital signature on certificate.
### Certificate path analysis
The client's browser can perform path verification to ensure that the server's certificate contains a valid trust anchor.
### Certificate configuration analysis
Some browsers can be configured to implement the key-usage extensions contained certificates. This can help to prevent a certificate from being misused.
### Certificate revocation status analysis
Using either Certificate Revocation Lists (CRLs) or Online Certificate Status Protocol (OCSP) to determine the revocation status. OCSP Stapling, binding the status with the certificate, helps to mitigate potential delay in status verifications.
## Considerations
* Management of the PKI across the enterprise typically requires automation to maintain scalability and flexibility
* If the certificate authority, issuing the certificate, is compromised then all of the certificates issued by the CA are suspect
* There may be delays associated with updates to certificates
* Revoked certificates give the appearance of valid certificates until they are published to a trusted revocation service (OCSP or CRL)
* The revocation service (OCSP or CRL) may be down during our connection and a browser will need to make a decision will need to be made about trusting the connection"
- "Active Certificate Analysis"
- "The NTDSUtil tool may be used to dump a Microsoft Active Directory database to disk for processing with a credential access tool such as Mimikatz. This is performed by launching ntdsutil.exe as a privileged user with command line arguments indicating that media should be created for offline Active Directory installation and specifying a folder path. This process will create a copy of the Active Directory database, ntds.dit, to the specified folder path."
- "Reference - CAR-2019-08-002: Active Directory Dumping via NTDSUtil - MITRE"
- "CAR-2019-08-002: Active Directory Dumping via NTDSUtil"
- "Detection of unauthorized use of administrative network protocols by analyzing network activity against a baseline."
- "## How it works
Network protocols such as RDP, IPMI, SSH, SNMP, VNC, MOSH, NX, TeamViewer, SPICE, PCoIP, and others are used by system administrators to remotely manage servers. Defenders monitor administrative network activity to determine if the use of remote protocols is malicious. Attackers can abuse administrative protocols and leverage them for initial access to various endpoints. For example, an attacker with valid credentials will remotely SSH or RDP into a server and attempt to blend in with existing traffic from system administrators. By monitoring the traffic activity, it is possible to detect when the protocols are behaving differently from a known baseline of system administration activity.
## Considerations
* Administrative traffic can be encrypted, making network protocol analysis a challenge
* False alarms can be mitigated by integration with inventory management systems"
- "Administrative Network Activity Analysis"
- "Administrative Network Traffic"
- http://dbpedia.org/resource/Remote_administration

- "Once a credential dumper like mimikatz runs, every user logged on since boot is potentially compromised, because the credentials were accessed via the memory of lsass.exe. When such an event occurs, this analytic will give the forensic context to identify compromised users. Those users could potentially be used in later events for additional logons.
The time field indicates the first and last time a system reported a user logged into a given system. This means that activity could be intermittent between the times given and should not be considered a duration."
- "Reference - CAR-2015-07-001: All Logins Since Last Boot - MITRE"
- "CAR-2015-07-001: All Logins Since Last Boot"
- http://dbpedia.org/resource/Application_software

- http://wordnet-rdf.princeton.edu/id/06582286-n

- "Application Configuration"
- http://wordnet-rdf.princeton.edu/id/05739724-n

- "Application Configuration Database"
- "Application Configuration Database Record"
- "Application Configuration File"
- "Modifying an application's configuration to reduce its attack surface."
- "## How it works
Application configuration settings can be configured to limit the permissions on an application or disable certain vulnerable application features.
Hardening an application's configuration involves analyzing not only the application but also the environment in which the application is run in for potential vulnerabilities."
- "Application Configuration Hardening"
- "Application Hardening makes an executable application more resilient to a class of exploits which either introduce new code or execute unwanted existing code. These techniques may be applied at compile-time or on an application binary."
- "## Technique Overview
Exploits may, for example, rely on knowledge of addresses in a process's memory, they may alter memory contents, and they may cause a program to use instructions in a way that they were not intended. By, for example, including code that dynamically changes the memory address of data or code on each run, introducing logic to validating the memory contents before certain potentially dangerous flows are executed, or monitoring a program for unusual sequence of instructions, this makes it harder for an attacker to craft a working exploit."
- http://dbpedia.org/resource/Application_software

- http://dbpedia.org/resource/Archive_file

- http://dbpedia.org/resource/Input_device#Voice_input_devices

- http://dbpedia.org/resource/Authentication

- http://wordnet-rdf.princeton.edu/id/00155053-n

- "Removing tokens or credentials from an authentication cache to prevent further user associated account accesses."
- "## How it works
Applications can locally cache user authentication credentials for certain server connections. An application may attempt to use the cached credential for a connection. If the cached credentials exist then the user will not be typically prompted for new credentials.
## Considerations
Are these cached credentials only on the local host? Can they be persisted to the remote server?
## Examples
Windows Credential Management API"
- "Authentication Cache Invalidation"
- "Collecting authentication events, creating a baseline user profile, and determining whether authentication events are consistent with the baseline profile."
- "## How it works
Authentication event data is collected (logon information such as device id, time of day, day of week, geo-location, etc.) to create an activity baseline. Then, a threshold is determined either through a manually specified configuration, or a statistical analysis of deviations in historical data. New authentication events are evaluated to determine if a threshold is exceeded. Thresholds can be static or dynamic.
### Actions
As a result of the analysis, actions taken could include:
* [Account Locking](/technique/d3f:AccountLocking)
* Raising an alert
### Example data sources
* Directory server logs
* VPN Server logs
* IDAM Capability logs
* NAC logs
* Authentication client logs
* Kerberos network traffic
* LDAP network traffic
## Considerations
This technique covers statistical outliers. Though depending on the complexity or dimensionality of the data considered, outliers may not be obvious to a human analyst reviewing events in simplistic analytic views. If the malicious activity is not statistically different from benign activity, an alert threshold will not be met."
- "Authentication Event Thresholding"
- http://dbpedia.org/resource/Authorization

- http://wordnet-rdf.princeton.edu/id/00155053-n

- https://www.gartner.com/en/information-technology/glossary/authentication-service

- http://dbpedia.org/resource/Authentication

- http://dbpedia.org/resource/Authorization

- "Collecting authorization events, creating a baseline user profile, and determining whether authorization events are consistent with the baseline profile."
- "## How it works
Authorization event data is collected to create a baseline user profile. Authorization events that deviate from the baseline and exceed a static or dynamic threshold are identified for further action. Authorization events can include successful and failed authorization attempts as well as events related to permissions including viewing, editing, deleting, creating files, databases etc.
## Considerations
Depending on the complexity of the data considered, outliers may not be obvious to a human analyst reviewing events in simplistic analytic views. If malicious activity is not statistically different from benign activity, an alert threshold will not be met."
- "Authorization Event Thresholding"
- http://dbpedia.org/resource/Authorization

- http://wordnet-rdf.princeton.edu/id/00155053-n

- "The Sysinternals tool Autoruns checks the registry and file system for known identify persistence mechanisms. It will output any tools identified, including built-in or added-on Microsoft functionality and third party software. Many of these locations are known by adversaries and used to obtain Persistence. Running Autoruns periodically in an environment makes it possible to collect and monitor its output for differences, which may include the removal or addition of persistent tools. Depending on the persistence mechanism and location, legitimate software may be more likely to make changes than an adversary tool. Thus, this analytic may result in significant noise in a highly dynamic environment. While Autoruns is a convenient method to scan for programs using persistence mechanisms its scanning nature does not conform well to streaming based analytics. This analytic could be replaced with one that draws from sensors that collect registry and file information if streaming analytics are desired.
Utilizes the Sysinternals autoruns tool (ignoring validated Microsoft entries). Primarily not a detection analytic by itself but through analysis of results by an analyst can be used for such. Building another analytic on top of this one identifying unusual entries would likely be a beneficial alternative."
- "Reference - CAR-2013-01-002: Autorun Differences -"
- "CAR-2013-01-002: Autorun Differences"
- "Using biological measures in order to authenticate a user."
- "Biometric Authentication"
- http://dbpedia.org/resource/Device_file#BLOCKDEV

- https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_79

- http://dbpedia.org/resource/Bootloader

- http://dbpedia.org/resource/Boot_sector

- "Cryptographically authenticating the bootloader software before system boot."
- "Bootloader Authentication"
- "Broadcast isolation restricts the number of computers a host can contact on their LAN."
- "## How it works
Software Defined Networking, or other network encapsulation technologies intercept host broadcast traffic then route it to a specified destination per a configured policy.
This can be implemented within hypervisors, networking hardware (WAPs, switches, routers), or virutal hardware.
## Considerations
This technique is highly dependent on network infrastructure and networking requirements."
- "Broadcast Domain Isolation"
- http://dbpedia.org/resource/Web_browser

- http://wordnet-rdf.princeton.edu/id/13376000-n

- http://dbpedia.org/resource/Browser_extension

- "Analyzing sequences of bytes and determining if they likely represent malicious shellcode."
- "## How it works
Bytes are analyzed as if they are machine code instructions, and such instructions that are a common component of known shellcode are noted, such as stack pivots, reads from a Memory Address Table, and system calls for functions that disable protections or execute code. For example, the x86 instruction `b0 0b: mov $11, %ax`, with no further alterations to the `%ax` register, followed by `cd 80: syscall` executes the system call `execve()` in the Linux kernel, which replaces the current process with another one specified -- this is a common action in shellcode, so this sequence would be flagged.
This technique detects shellcode despite whether or not it would cause a buffer overflow in the target binary.
If the sequence of bytes contains a sequence similar to that used in malicious shellcode, the entire byte sequence is flagged and a follow-on technique may be invoked.
## Considerations
### False Negatives
If the shellcode instructions are far apart, simple implementations might not detect the shellcode.
Due to the nature of assembly instructions not having a defined start or end, implementations which do not process all start sequences (for example, when they a find byte sequence of interest, continue scanning forwards from the end of it) might not detect the shellcode.
This technique might not detect more complex or obfuscated instructions. For that purpose, Dynamic Analysis or Emulated File Analysis could assist by analyzing the actual instruction function.
This technique may not detect self-modifying code. To make it harder for a process to modify itself, Process Segment Execution Prevention should be used, while noting its considerations.
This technique might not detect malicious shellcode which reuses instructions in the target binary for malicious effect, as memory references in the presumed assembly code are not dereferenced. Dynamic Analysis and Emulated File Analysis, when set up properly to fork from the running target binary, might detect this. Process Segment Execution Prevention combined with Segment Address Offset Randomization frequently makes introduction of shellcode through overwriting a saved return pointer more difficult. Call stack depth analysis might detect excessive reuse of instructions in the target binary. Shadow Stack Frames might detect that a stack frame's return address has changed and Stack Frame Canary Verification might detect that the stack frame's return address was overwritten. Other heuristic methods might detect jump-oriented programming shellcode.
With inserting code directly, that it is not a buffer overflow, and just some place where code is executed either to a file or a write-what-where, the buffer overflow mitigations do not help. Behavioral analysis could detect this, or proper access control could mitigate this.
### False Positives
Byte sequences containing code that is never used as machine code are still analyzed and flagged for anomalies, and [eventually](http://mathforum.org/library/drmath/view/55871.html), it is likely that an attack sequence will arise from the sheer volume of bytes transmitted."
- "Byte Sequence Emulation"
- "Shellcode Transmission Detection"
- http://dbpedia.org/resource/Call_stack

- http://dbpedia.org/resource/Public_key_certificate

- "Requiring a digital certificate in order to authenticate a user."
- "Certificate-based Authentication"
- "Analyzing Public Key Infrastructure certificates to detect if they have been misconfigured or spoofed using both network traffic, certificate fields and third-party logs."
- "## How it works
Certificate Analysis ensures that the data elements of the certificate are current and anchored in a known trust model. Certificate authorities, revocation lists, and third-party secure logs are used in the analysis. Analysis includes detection of server impersonation, phishing domains, and forged certificates.
TLS certificates are designed to expire to ensure that the cryptographic keys are forced to be changed on a regular basis. The certificates in the trust path also expire and can cause a break in the trust chain. This means that even if a server certificate is updated correctly, intermediate certificates can expire and the trust chain is not maintained. This can cause services to become unavailable."
- http://dbpedia.org/resource/Public_key_certificate

- "Persisting either a server's X509 certificate or their public key and comparing that to server's presented identity to allow for greater client confidence in the remote server's identity for SSL connections."
- "## How it works
Pinning allows for a trusted copy of a certificate or public key to be associated with a server and thus reducing the likelihood of frequently visited sites being subjected to man-in-the-middle attacks. Certificates or public keys can be pinned after a trusted connection has been established or the pinning can be preloaded in an application, which is the preferred method for mobile applications.
Pinning can take the form of certificate pinning or public key pinning.
## Forms of Pinning
* Certificate Pinning
Certificate Pinning (CP) allows for the client to verify the X509 certificate with a preloaded certificate. Typically, this is involves storing a hash of the certificate and using the stored hash for comparison to the hash of the certificate submitted during the SSL handshake.
* Public Key Pinning
Public Key Pinning (PKP) requires the extraction of a public key from server's certificate. The stored public key is compared to the server's presented public key. A public key is expected to rotate less frequently than an X509 certificate and is generally favored over certificate pinning.
An extension of PKP is Subject Public Key Information Pinning (SPKI) includes public key pinning plus additional information for SSL connections. The additional information can include preferred algorithms.
## Considerations
* With pinned certificates whenever a server updates its certificate, the pinned certificates will also need to be updated
* With pinned public keys the extracted key may be subject to key refresh policies but much less frequently
* Servers can become unavailable if pinned objects are set and not updated with the rotated identities. This may require a pinning strategy to be developed.
* The application of this technique within web browser applications has been [deprecated](https://developer.mozilla.org/en-US/docs/Web/HTTP/Public_Key_Pinning) by popular web browser developers. They now favor certificate analysis via public certificate transparency logs, and the EXPECT-CT HTTP header."
- "Certificate Trust Store"
- http://dbpedia.org/resource/Public_key_certificate

- https://www.educative.io/edpresso/keystore-vs-truststore

- "Comparing client-server request and response payloads to a baseline profile to identify outliers."
- "## How it works
Profiling request and response payloads across multiple clients to a single server to develop a baseline of their characteristics. May take into account request/response sizes, entropy, frequency, and rhythm. Finally, identify outliers as they may indicate a malicious payload delivery and subsequent server exploitation.
## Considerations
* Collecting metrics to establish a profile can be challenging since user behavior can change easily.
* Employees may work different hours or inconsistent schedules which will cause false positives.
* Collection of network activity to generate metrics is a computationally intensive process.
* Users may log into different workstations which may cause false positives."
- "Client-server Payload Profiling"
- http://dbpedia.org/resource/Client_(computing)

- "http://attackguidev.mitre.org/techniques/T1554/ "Compromise Client Software Binary""
- http://dbpedia.org/resource/Clipboard_(computing)

- "Cloud Configuration Information"
- "Cloud Instance Metadata"
- https://isc.sans.edu/forums/diary/Cloud+Metadata+Urls/22046

- http://dbpedia.org/resource/Cloud_storage

- http://dbpedia.org/resource/Cloud_computing

- "Repository"
- "Version Control Repository"
- http://dbpedia.org/resource/Repository_(version_control)

- http://dbpedia.org/resource/Command_(computing)

- "Command and Control Technique"
- "Command History Log File"
- http://dbpedia.org/resource/Command_history

- "An adversary can use accessibility features (Ease of Access), such as StickyKeys or Utilman, to launch a command shell from the logon screen and gain SYSTEM access. Since an adversary does not have physical access to the machine, this technique must be run within Remote Desktop. To prevent an adversary from getting to the login screen without first authenticating, Network-Level Authentication (NLA) must be enabled. If a debugger is set up for one of the accessibility features, then it will intercept the process launch of the feature and instead execute a new command line. This analytic looks for instances of cmd.exe or powershell.exe launched directly from the logon process, winlogon.exe. It should be used in tandem with CAR-2014-11-003, which detects the accessibility programs in the command line."
- "Reference - CAR-2014-11-008: Command Launched from WinLogon - MITRE"
- 'Process Lineage Analysis'
- "CAR-2014-11-008: Command Launched from WinLogon"
- "Before exfiltrating data that an adversary has collected, it is very likely that a compressed archive will be created, so that transfer times are minimized and fewer files are transmitted. There is variety between the tools used to compress data, but the command line usage and context of archiving tools, such as ZIP, RAR, and 7ZIP, should be monitored.
In addition to looking for RAR or 7z program names, command line usage of 7Zip or RAR can be detected with the flag usage of "\* a \*". This is helpful, as adversaries may change program names."
- "Reference - CAR-2013-07-005: Command Line Usage of Archiving Software -"
- "CAR-2013-07-005: Command Line Usage of Archiving Software"
- http://dbpedia.org/resource/Compiler

- "Compiler Configuration File"
- "Configuration Bearing Entity"
- "A decoy service, system, or environment, that is connected to the enterprise network, and simulates or emulates certain functionality to the network, without exposing full access to a production system."
- "## How it works
Decoy honeypots are deployed within the enterprise environment that emulate certain services or portions of an OS to attract attackers.
## Considerations
A connected honeynet provides a tradeoff between emulating certain functionality but not being as sophisticated as an integrated honeynet. The connected honeynet may not provide enough functionality to detect new attack patterns or zero day exploits but could provide enough functionality for specific known vulnerabilities."
- "Analyzing failed connections in a network to detect unauthorized activity."
- "## How it works
Connection Attempt Analysis in multiple ways.
### Monitoring traffic to unallocated IP space
One approach looks for failed connection attempts against unallocated IP space. First, network traffic is captured to map out the network to identify network assets as well as unallocated IP space. The map is then used to determine if connection attempts are being made to the unallocated IP space.
### Monitoring for sequentially transmitted traffic
Another approach passively inspects network traffic with application protocol analyzers observing network activity characteristics such as volume of packets sent/ received, TCP session attributes, and connection information between hosts (start time, source/destination host, services, etc.). Then using pattern matching to identify traffic which appears to be probing for network hosts.
## Considerations
* Implementations that rely on analysis of unallocated IP address space increase in their complexity with network size and decentralized network infrastructure.
* Inventory of unallocated IP space should should be continuously updated to mitigate the risk of false positives.
* IPv6 also introduces challenges including IPv6 traffic bypassing IPv4 specific protection systems (ex. firewalls and IDS) and complexity in managing both IPv6 and IPv4 addresses."
- "Connection Attempt Analysis"
- https://www.docker.com/resources/what-container

- "Container Orchestration Software"
- https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfile2

- https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea

- https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew

- https://linux.die.net/man/2/creat

- http://dbpedia.org/resource/Fork%E2%80%93exec

- http://dbpedia.org/resource/Spawn_(computing)

- https://docs.microsoft.com/en-us/windows/win32/procthread/creating-processes

- "Adversaries may use Windows Management Instrumentation (WMI) to move laterally, by launching executables remotely.The analytic CAR-2014-12-001 describes how to detect these processes with network traffic monitoring and process monitoring on the target host. However, if the command line utility wmic.exe is used on the source host, then it can additionally be detected on an analytic. The command line on the source host is constructed into something like wmic.exe /node:"\<hostname\>" process call create "\<command line\>". It is possible to also connect via IP address, in which case the string "\<hostname\>" would instead look like IP Address.
Although this analytic was created after CAR-2014-12-001, it is a much simpler (although more limited) approach. Processes can be created remotely via WMI in a few other ways, such as more direct API access or the built-in utility PowerShell."
- "Reference - CAR-2016-03-002: Create Remote Process via WMIC - MITRE"
- "CAR-2016-03-002: Create Remote Process via WMIC"
- http://dbpedia.org/resource/POSIX_Threads

- https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createthread

- http://dbpedia.org/resource/Access_control#Credential

- http://dbpedia.org/resource/Access_control

- "Credential Access Technique"
- "Determining which credentials may have been compromised by analyzing the user logon history of a particular system."
- "## How it works
#### Memory
Credentials may be stored in memory for a variety of reasons; on Windows, they may be stored in lsass.exe. Once a credential dumper like mimikatz runs and dumps the memory of lsass.exe, the credentials of every account logged on since boot are potentially compromised.
When such an event occurs, this analytic will give the forensic context to identify compromised users. Those users could potentially be used in later events for additional logons.
#### Hard disk
Operating System may cache a certain number of credentials onto the hard disk to use as a source of truth if it cannot contact the credential server. In many versions of Microsoft Windows, the 10 most recent are cached by default; this setting can be changed in the Microsoft Management Console's Local Security Policy: ```Computer Configuration -> Windows Settings -> Local Policy -> Security Options -> Interactive Logon: Number of previous logons to cache -> 0``` Here we are not concerned with the alteration of the credentials but the fact that they might be read. If the attacker has physical access to the machine they are unlikely to be stopped from reading files on the filesystem.
"In the event that the domain controller is unavailable Windows will check the last password hashes that has been cached in order to authenticate the user with the system. These password hashes are cached in the following registry setting:
HKEY_LOCAL_MACHINE\SECURITY\Cache
Mimikatz can retrieve these hashes if the following command is executed:
lsadump::cache" [1]
The Registry Hive, HKEY_LOCAL_MACHINE\SAM, which is stored in the supporting files %systemroot%\System32\Config\{Sam,sam.log,sam.sav}, contains the SAM file.
DC: This is stored in %systemroot%\ntds\ntds.dit. (https://www.ultimatewindowssecurity.com/blog/default.aspx?d=10/2017)
Sometimes memory, which contains credentials, could get on the hard disk. Like with hiberfil.sys in Windows. Equivalent on Linux
In Linux, an attacker could read the /etc/shadow file.
Reading from /proc directory: mimipenguin, many others.
## Considerations
Effective implementation requires identifying any location that could end up containing credentials, and detecting an method of potential access to a source of credential data.
1. https://medium.com/blue-team/preventing-mimikatz-attacks-ed283e7ebdd5"
- "Credential Compromise Scope Analysis"
- "Credential dumpers like Mimikatz can be loaded into memory and from there read data from another processes. This analytic looks for instances where processes are requesting specific permissions to read parts of the LSASS process in order to detect when credential dumping is occurring. One weakness is that all current implementations are "overtuned" to look for common access patterns used by Mimikatz."
- "Reference - CAR-2019-04-004: Credential Dumping via Mimikatz - MITRE"
- "CAR-2019-04-004: Credential Dumping via Mimikatz"
- "The Windows Task Manager may be used to dump the memory space of lsass.exe to disk for processing with a credential access tool such as Mimikatz. This is performed by launching Task Manager as a privileged user, selecting lsass.exe, and clicking "Create dump file". This saves a dump file to disk with a deterministic name that includes the name of the process being dumped.
This requires filesystem data to determine whether files have been created."
- "Reference - CAR-2019-08-001: Credential Dumping via Windows Task Manager - MITRE"
- "CAR-2019-08-001: Credential Dumping via Windows Task Manager"
- "Credential Eviction techniques disable or remove compromised credentials from a computer network."
- "Credential Hardening techniques modify system or network properties in order to protect system or network/domain credentials."
- http://dbpedia.org/resource/Credential_Management

- "Credential Management System"
- "Limiting the transmission of a credential to a scoped set of relying parties."
- "Credential Transmission Scoping"
- https://pages.nist.gov/TIG-Stage/sp800-63c.html

- https://www.w3.org/TR/webauthn-2/

- "Phishing Resistant Authentication"
- "Microsoft Windows allows for processes to remotely create threads within other processes of the same privilege level. This functionality is provided via the Windows API CreateRemoteThread. Both Windows and third-party software use this ability for legitimate purposes. For example, the Windows process csrss.exe creates threads in programs to send signals to registered callback routines. Both adversaries and host-based security software use this functionality to inject DLLs, but for very different purposes. An adversary is likely to inject into a program to evade defenses or bypass User Account Control, but a security program might do this to gain increased monitoring of API calls. One of the most common methods of DLL Injection is through the Windows API LoadLibrary.
Allocate memory in the target program with VirtualAllocEx
Write the name of the DLL to inject into this program with WriteProcessMemory
Create a new thread and set its entry point to LoadLibrary using the API CreateRemoteThread.
This behavior can be detected by looking for thread creations across processes, and resolving the entry point to determine the function name. If the function is LoadLibraryA or LoadLibraryW, then the intent of the remote thread is clearly to inject a DLL. When this is the case, the source process must be examined so that it can be ignored when it is both expected and a trusted process."
- "Reference - CAR-2013-10-002: DLL Injection via Load Library - MITRE"
- "CAR-2013-10-002: DLL Injection via Load Library"
- "Permitting only approved domains and their subdomains to be resolved."
- "Blocking DNS Network Traffic based on criteria such as IP address, domain name, or DNS query type."
- "## How it works
Rules are implemented that filter DNS queries using criteria such as:
- Client subnet
- Type of network protocol used in query
- Fully qualified domain name (FQDN) of record in the query
- DNS Server IP address that received the DNS request
- Type of DNS record being queried
- Time of day the query is received
- Size of the response
For example, a DNS policy can be created for blocking DNS queries for FQDNs that have been identified as unauthorized.
## Considerations
- Implementation considerations for DNS filtering policies to avoid over-blocking or under-blocking domains.
- Continuous maintenance of unauthorized domain lists is needed to keep up to date with possible site content changes.
- File sharing or content delivery networks may require other filtering techniques that are more fine-grained (URL blocking).
- Access to malicious websites or other network resources directly by IP instead of by DNS record, or after alteration of local DNS hosts file, may not result in DNS network traffic."
- http://dbpedia.org/resource/Domain_Name_System

- http://dbpedia.org/resource/List_of_DNS_record_types

- "Analysis of domain name metadata, including name and DNS records, to determine whether the domain is likely to resolve to an undesirable host."
- "## How it works
This technique can be accomplished in a number of ways.
* One example analytic determines whether or not a domain name was generated with an algorithm. Domain generation algorithms (DGAs) are sometimes used to create a domain name automatically that will resolve to C2 infrastructure, without directly coding the domains in question into the malicious code.
* Another method analyzes information about domains that have been visited, including whether a domain name is longer than a common length, if a dynamic DNS domain was visited, if a fast-flux domain was visited, and if a recently created domain was visited. These factors are used to develop a score and if that score is over a certain threshold, an alert is generated.
* Collected malware samples can be executed in a virtual environment to identify network domains that are connected to during execution. The network domains are then generated into signatures to identity bad domains for other hosts.
This technique does not check for content hosted at the domain.
## Considerations
* DNS produces a large amount of traffic which can be resource-intensive to analyze in real time.
* If a server is compromised, for example, as part of a watering hole attack, but the DNS information pointing to that server is not altered, this technique would not catch such an incident."
- "Malware depends on its ability to insert a malicious payload into memory with the hope that it will be executed later. Wouldn't it be great if you could prevent malware from running if it wrote to an area that has been allocated solely for the storage of information?
Data Execution Prevention (DEP) does exactly that, by substantially reducing the range of memory that malicious code can use for its benefit. DEP uses the No eXecute bit on modern CPUs to mark blocks of memory as read-only so that those blocks can't be used to execute malicious code that may be inserted by means of a vulnerability exploit."
- "Nick Schonning, Daniel Simpson, Marty Hernandez Avedon, Trond B. Krokli, jreeds, jcaparas, Andres Mariano Gorzelany, Tina Burden, Thomas Raya, Justin Hall, justanotheranonymoususer, Liza Poggemeyer, Dani Halfin, imba-tjd (Authors for entire page)"
- "Reference - Mitigate threats by using Windows 10 security features: Data Execution Prevention - Microsoft"
- "Mitigate threats by using Windows 10 security features: Data Execution Prevention"
- http://dbpedia.org/resource/Database

- http://dbpedia.org/resource/Database

- "Analyzing database queries to detect [SQL Injection](https://capec.mitre.org/data/definitions/66.html)."
- "## How it works
Some implementations use software hooks to intercept function calls related to database query operations. Other implementations might intercept or collect network traffic. The database query string is then extracted and analyzed with various methods, for example:
* Detecting specific administrative SQL commands
* Anomalous sequences of commands when compared to a statistical baseline.
* Anomalous commands for a given user role.
## Considerations
Some capabilities sanitize queries before permitting them to be transmitted to the database. This incurs risks such altering data in an undesired way or breaking application functionality."
- "Database Query String Analysis"
- "Network Database Resource"
- http://dbpedia.org/resource/Database_server

- "Removing unreachable or "dead code" from compiled source code."
- "## How it works
Dead code is code that is considered unreachable by normal program execution. Dead code can be created by adding code under a condition that never evaluates to true. Dead code should be removed since this type of code can produce unexpected results, if accidentally or maliciously forced to execute.
Dead code identification is typically performed by algorithms that implement program flows analysis looking for unreachable code. The dead code is eliminated by instructing compilers to remove the code through compiler flags, i.e., '-fdce' is used for Dead Code Elimination.
## Considerations
Code can also be deemed unreachable for certain run-time conditions. Different deployed systems and environments may contain some code that is unreachable for the given environment. This technique does not consider run-time conditions for unreachable code."
- "The Windows Registry location HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options allows for parameters to be set for applications during execution. One feature used by malicious actors is the "Debugger" option. When a key has this value enabled, a Debugging command line can be specified. Windows will launch the Debugging command line, and pass the original command line in as an argument. Adversaries can set a Debugger for Accessibility Applications. The analytic looks for the original command line as an argument to the Debugger. When the strings "sethc.exe", "utilman.exe", "osk.exe", "narrator.exe", and "Magnify.exe" are detected in the arguments, but not as the main executable, it is very likely that a Debugger is set.
This analytic could depend on the possibility of the known strings used as arguments for other applications used in the day-to-day environment. Although the chance of the string "sethc.exe" being used as an argument for another application is unlikely, it still is a possibility."
- "Reference - CAR-2014-11-003: Debuggers for Accessibility Applications -"
- 'Process Lineage Analysis'
- "CAR-2014-11-003: Debuggers for Accessibility Applications"
- "The Windows Registry location HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options allows for parameters to be set for applications during execution. One feature used by malicious actors is the "Debugger" option. When a key has this value enabled, a Debugging command line can be specified. Windows will launch the Debugging command line, and pass the original command line in as an argument. Adversaries can set a Debugger for Accessibility Applications. The analytic looks for the original command line as an argument to the Debugger. When the strings "sethc.exe", "utilman.exe", "osk.exe", "narrator.exe", and "Magnify.exe" are detected in the arguments, but not as the main executable, it is very likely that a Debugger is set.
This analytic could depend on the possibility of the known strings used as arguments for other applications used in the day-to-day environment. Although the chance of the string "sethc.exe" being used as an argument for another application is unlikely, it still is a possibility."
- "Reference - CAR-2014-11-003: Debuggers for Accessibility Applications - MITRE"
- 'Process Lineage Analysis'
- "CAR-2014-11-003: Debuggers for Accessibility Applications"
- "The deceive tactic is used to advertise, entice, and allow potential attackers access to an observed or controlled environment."
- "Decoy"
- "Decoy Object"
- "Lure"
- "Trap"
- http://dbpedia.org/resource/Deception_technology

- https://doi.org/10.1007/978-3-319-25133-2

- https://shield.mitre.org/

- "A Decoy Environment comprises hosts and networks for the purposes of deceiving an attacker."
- "## Technique Overview
Systems in a decoy environment are typically configured so that some detectable means of communication does not have any legitimate business purpose. Any communication via these means should be logged and analyzed to find potential indicators of compromise for a possible past or future attack against other systems."
- "A file created for the purposes of deceiving an adversary."
- "## How it works
The decoy file is made available as a local or network resource. Accesses to the file may be monitored. The files may be configurations, documents, executables, or other file types.
## Considerations
Properties of the file such as cryptographic checksums, file creation date, file modified date, file size, file owner etc may be modified to improve the credibility of the file.
## Example
* A CSV file with decoy user credentials is placed on a system. The system or network is then monitored to detect any accesses to the decoy files."
- "Deploying a network resource for the purposes of deceiving an adversary."
- "## How it works
Decoy network resources are deployed to web application servers, network file shares, or other network based sharing services.
A "honeypot" may serve a variety of decoy network resources.
## Considerations
* Developing a deployment and placement strategy for the decoy network resource.
* Personnel responsible for creation of decoy networks should consider the potential for resource exhaustion through denial of service attacks.
## Examples
* Honeypots are typically used to mimic a known system with fake vulnerabilities. This may attract attackers to the honeypot.
* Decoy accounts are also used to scan for attempted logins. The decoy accounts can provide security analysts with the attacker's potential intents and strategies.
* Tarpits are used to monitor unallocated IP space for unauthorized network activity."
- "A Decoy Object is created and deployed for the purposes of deceiving attackers."
- "## Technique Overview
Decoy objects are typically configured with detectable means of communication but do not have any legitimate business purpose. Any communication via or to these objects should be logged and analyzed to find potential indicators of compromise for a possible past or future attack against other systems."
- "Establishing a fake online identity to misdirect, deceive, and or interact with adversaries."
- "## How it works
A false online identity is created for the purposes of interacting with adversaries in a direct or indirect manner. This includes the associated email addresses, social media accounts, and other online communication profiles.
## Considerations
* Include phone numbers and online social profiles as well as automatically or manually responding to contact made to the persona to improve realism.
* Continuous updating and managing the decoy personas and online activity streams to ensure personas do not become stale and outdated."
- "Issuing publicly released media to deceive adversaries."
- "## How it works
Publicly released media includes press release, videos, or other marketing collateral. The media may include URLs, points of contact, or other identifiers to entice interaction from adversaries.
## Considerations
* Information used in decoy public released media must contain enough realism to deceive and provide interaction from adversaries.
* Continuous development, creation, and distribution of media and identifiers are needed to ensure adversary interaction continues over time.
* Decoy public releases could be placed on platforms with different degrees of ownership, including entirely enterprise-owned infrastructure, IaaS, and SaaS (including social applications). Platforms that are not entirely enterprise-owned may be more likely to gather information"
- "An authentication token created for the purposes of deceiving an adversary."
- "## How it works
Usage of decoy session tokens may be monitored to track attacker behavior or otherwise control the beliefs of the attacker.
## Considerations
* Interaction and activity with the decoy session token must be constantly monitored and analyzed to detect unauthorized activity.
* Session tokens are typically short-lived and therefore the decoy must be continuously updated to provide the appearance of it being used in the production environment.
* Automated tools can assist with maintenance and updates by automatically adjusting the decoy session token and environment to mimic the production environment."
- "A Credential created for the purpose of deceiving an adversary."
- "## How it works
A detection analytic is developed to determine when a user uses decoy credentials. Subsequent actions by that user may be monitored or controlled by the defender.
A credential may be:
* Domain username and password
* Local system username and password
## Considerations
* Decoy credentials should be integrated with a larger decoy environment to ensure that when decoy credentials are compromised, the credentials are used to interact with a decoy asset that is being monitored.
* Continuous maintenance and updates are needed to ensure the legitimacy of the larger decoy environment and specifically the assets that utilize the decoy credentials."
- https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/local-accounts

- "Defense Evasion Technique"
- http://wordnet-rdf.princeton.edu/id/05913746-n

- "A method which makes a computer system more difficult to attack."
- https://csrc.nist.gov/glossary/term/security_control

- "Countermeasure Technique"
- "Defensive Capability Feature"
- "Technical Security Control"
- "The detect tactic is used to identify adversary access to or unauthorized activity on computer networks."
- http://dbpedia.org/resource/Digital_artifactual_value

- http://dbpedia.org/resource/Virtual_artifact

- http://dbpedia.org/resource/Directory_(computing)

- http://dbpedia.org/resource/Directory_service

- "Encrypting a hard disk partition to prevent cleartext access to a file system."
- "Display Card"
- "Graphics Adapter"
- "Video Card"
- http://dbpedia.org/resource/Video_card

- http://dbpedia.org/resource/Device_driver

- http://dbpedia.org/resource/Display_adapter

- http://dbpedia.org/resource/Display_server

- http://dbpedia.org/resource/Document

- "Monitoring the existence of or changes to Domain User Accounts."
- "Domain Account Monitoring"
- "Domain Name Registration Data"
- http://dbpedia.org/resource/Domain_registration

- http://dbpedia.org/resource/WHOIS

- "Restricting inter-domain trust by modifying domain configuration."
- https://networkencyclopedia.com/global-user-account

- "Ensuring the integrity of drivers loaded during initialization of the operating system."
- "## How it works
This technique can be accomplished in a number of ways:
* A kernel level security agent installed on a host machine ensures that the driver associated with the agent is first in the initialization order. A dependent DLL associated with the driver is configured to be processed before other dependent DLLs and executes a number of operations to ensure the driver associated with the security agent is initialized first.
* Kernel components can be signed by a certificate obtained by a third party to verify the source of the component and whether it has been modified. When signed, the component will include a signature block implemented as a hash value of the component header and can also include a certificate chain. The signature and certificate data are typically added before the kernel component is distributed to the public.
## Considerations
* The private keys to sign certificates as reputable companies have been stolen in the past -- in cases such as where certificates from Adobe, Realtek, and JMicron have been used to sign malicious executables. (Source: https://resources.infosecinstitute.com/cybercrime-exploits-digital-certificates/#gref)
* Trusted Root Certificate Authorities have been compromised, yielding the ability to use the compromised keys to generate certificates with an arbitrary company name.
* It may not be difficult for an attacker to start an organization which can obtain a signed certificate.
* A root certificate authority (CA) whose certificate is trusted in the verification logic could generate incorrect certificates, if they are lax or have ulterior motives."
- "Driver Load Integrity Checking"
- "Executing or opening a file in a synthetic "sandbox" environment to determine if the file is a malicious program or if the file exploits another program such as a document reader."
- "## How it works
Analyzing the interaction of a piece of code with a system while the code is being executed in a controlled environment such as a sandbox, virtual machine, or simulator. This exposes the natural behavior of the piece of code without requiring the code to be disassembled.
## Considerations
* Malware often detects a fake environment, then changes its behavior accordingly. For example, it could detect that the system clock is being sped up in an effort to get it to execute commands that it would normally only execute at a later time, or that the hardware manufacturer of the machine is a virtualization provider.
* Malware can attempt to determine if it is being debugged, and change its behavior accordingly.
* For maximum fidelity, the simulated and real environments should be as similar as possible because the malware could perform differently in different environments.
* Sometimes the malware behavior is triggered only under certain conditions (on a specific system date, after a certain time, or after it is sent a specific command) and can't be detected through a short execution in a virtual environment.
## Implementations
* [Cuckoo Sandbox](https://cuckoosandbox.org)"
- "Malware Detonation"
- "Malware Sandbox"
- http://dbpedia.org/resource/Email

- http://dbpedia.org/resource/Email_attachment

- "Emulating instructions in a file looking for specific patterns."
- http://dbpedia.org/resource/Network_enclave

- "Encrypted encapsulation of routable network traffic."
- "Monitoring the security status of an endpoint by sending periodic messages with health status, where absence of a response may indicate that the endpoint has been compromised."
- "## How it works
Endpoints are configured to periodically generate and transmit a secure heartbeat that is delivered on a configured schedule and provides endpoint status information. Status information can include software details (version, configuration, etc), endpoint identification (MAC, IP address, machine ID) or other hardware/software configuration information. Interruption of the heartbeat can signal that the endpoint has been compromised.
## Considerations
* Security of heartbeat messages to ensure message integrity
* Disappearance of the heartbeat could simply mean that the endpoint is powered off or intentionally disconnected from the network. Therefore other criteria may need to be used to accurately detect endpoint compromise.
* Attacker presence on the machine may leave the heartbeat intact.
* An attacker may determine the format of the heartbeat and continue to send it even after the machine is compromised."
- "Endpoint Health Telemetry"
- http://dbpedia.org/resource/Log_file#Event_logs

- "The eviction tactic is used to remove an adversary from a computer network."
- "Validates that a referenced exception handler pointer is a valid exception handler."
- "## How It Works
When a process encounters an exception, it calls an exception handler to deal with the exception. The method by which this exception handler is determined varies by the operating system. The exception handler is called, even if it is the default exception handler to terminate the program and display a message that the program stopped working. In the case that no valid exception handler is found, the program would fail to proceed as normal and could be programmed to terminate.
In Windows, the address of the exception registration record is stored at the very start of the the Thread Information Block; the GS register points to this structure.
The exception registration record contains two pointers: a pointer to the next exception registration record should this handler fail to handle the exception, and a pointer to the handler.
A buffer overflow can overwrite the saved return pointer with an invalid location to execute memory; this often triggers the exception handler chain, which could also be corrupted by the buffer overflow. Although Process Exception Handler Validation does not make sure that the exception handler pointer or the code at the exception handler was unaltered, or that the exception handler code is secure, this technique does ensure that the pointer is at least an exception handler that could be called by the program.
With Process Exception Handler Validation, before the handler is called, it checks the exception handler against a source of valid exception handlers. If the requested handler is not in this list, other techniques such as those in Process Eviction might be invoked, such as Process Termination to end the current process, or Executable Blacklisting to blacklist the potentially vulnerable or malfunctioning executable.
### Runtime valid exception handler source generation
The source of valid exception handlers could be generated at runtime, with the risk of the information that is used to determine the validity of exception handlers being compromised.
### Compile-time
The source of valid exception handlers could also be generated at compile time or as a binary patch. Given the source code, it would be rather straightforward to find the exceptions, as they are pointed in the catch statement of a try-catch clause and the compiler must already generate the code to call exceptions from this.
## Considerations
If the program file can be altered by the attacker, then the security could be bypassed by replacing it with any desired program, without even bypassing SEH.
If the attacker was already able to overwrite the code for a valid exception handler via other functionality in the program, this defense would not prevent arbitrary code execution.
If an exception handler recognized as valid is vulnerable, it would be executed anyway.
SafeSEH might be applied only to some executable files or modules, allowing an attacker to call any piece of code as an exception handler in the unprotected modules."
- "Exception Handler Pointer Validation"
- "Exception Handler Validation"
- "Using a digital signature to authenticate a file before opening."
- "## How it works
This technique is generic and there are numerous ways to compute and authenticate digital signatures.
A digital certificate is generated from a private/public key pair issued by a certificate authority (CA). A hash of the file is encrypted using the private key. When the file is downloaded by another user, the user's system uses the public key to decrypt the hash and a new hash is created of the downloaded file. The hash decrypted by the public key is compared to the new hash and if there is a mismatch, further techniques, such as file deletion, file quarantine, or **Executable Blacklisting** may be invoked.
This technique may be invoked when deciding whether to execute a file.
## Considerations
Organizations which download or create high volumes of software make management complex, in particular engineering or scientific organizations."
- "Executable Allowlisting"
- "File Signature Authentication"
- http://dbpedia.org/resource/Executable

- "Blocking the execution of files on a host in accordance with defined application policy rules."
- "## How it works
#### Criteria
A policy-enforcing application can register an application for denylisting based on conditions including the following:
* File attributes
* file name
* file path
* file hash
* file publisher, as obtained from the digital signature
* permissions of the file
* File malware scan (eg. Windows SmartScreen)
* User-File combination
This may be done to prevent execution of applications which are:
* an old version with known vulnerabilities
* without a valid license, which could cause legal issues
* in a directory that is accessible to low-privileged users, that could be accessed by a malware dropper
* known trojan horse programs
* too open in their permissions, possibly set to run as a user other than the originator or allowing execution when they should not be
* a match to the hash of other known malware
* are detected as undesirable based on a file scan runtime behavior
System administrators will customize the rules for the given environment.
#### Backend
The policy-enforcing program may work by running in kernel mode, and [intercepting] [system calls which execute a process].
## Considerations
* If denylisting is done by filename, filepath, or hash, these mechanisms may be a worthy first line of defense and detection, but could still be evaded by an attacker.
* Continuous management is needed to keep the denylist up to date, whether it is based on hash, publisher, behavior, or any other digital artifact.
* Although denylists based on attributes such as file path and virus scan could defend against some threats which they have not been explicitly coded to block, denylists may not provide protection from new, unknown, or zero day attacks.
## Examples
On a Windows machine the Windows Defender Application Control (WDAC) policy enforcement is run in the kernel and allows for restricting applications."
- "Executable Blacklisting"
- http://dbpedia.org/resource/Executable

- http://dbpedia.org/resource/Executable

- "Execution Isolation techniques prevent application processes from accessing non-essential system resources, such as memory, devices, or files."
- "In order to gain persistence, privilege escalation, or remote execution, an adversary may use the Windows built-in command AT (at.exe) to schedule a command to be run at a specified time, date, and even host. This method has been used by adversaries and administrators alike. Its use may lead to detection of compromised hosts and compromised users if it is used to move laterally. The built-in Windows tool schtasks.exe (CAR-2013-08-001) offers greater flexibility when creating, modifying, and enumerating tasks. For these reasons, schtasks.exe is more commonly used by administrators, tools/scripts, and power users."
- "Reference - CAR-2013-05-004: Execution with AT -"
- "CAR-2013-05-004: Execution with AT"
- "The Windows built-in tool schtasks.exe provides the creation, modification, and running of scheduled tasks on a local or remote computer. It is provided as a more flexible alternative to at.exe, described in CAR-2013-05-004. Although used by adversaries, the tool is also legitimately used by administrators, scripts, and software configurations. The scheduled tasks tool can be used to gain Persistence and can be used in combination with a Lateral Movement technique to remotely gain execution. Additionally, the command has parameters to specify the user and password responsible for creating the task, as well as the user and password combination that the task will run as. The /s flag will cause a task to run as the SYSTEM user, usually indicating privilege escalation."
- "Reference - CAR-2013-08-001: Execution with schtasks -"
- "CAR-2013-08-001: Execution with schtasks"
- http://wordnet-rdf.princeton.edu/id/06521201-n

- "Analyzing the way a process accesses local files to identify unauthorized activity."
- "## How it works
File modifying malware such as wipers and ransomware are detected by identifying file access patterns that are associated with a malicious process. Examples of file access patterns include accessing a large number of files, accessing multiple file types, files being accessed located in multiple locations in a directory, and copying a file and encrypting the contents of that file into a copy.
## Considerations
Certain file access actions may not be statistically different from authorized activity."
- "File Access Pattern Analysis"
- "File Analysis is an analytic process to determine a file's status. For example: virus, trojan, benign, malicious, trusted, unauthorized, sensitive, etc."
- "## Technique Overview
Some techniques use file signatures or file metadata to compare against historical collections of malware. Files may also be compared against a source of ground truth such as cryptographic signatures. Examining files for potential malware using pattern matching against file contents/file behavior. Binary code may be dissembled and analyzed for predictive malware behavior, such as API call signatures. Analysis might occur within a protected environment such as a sandbox or live system."
- "Identifying and extracting files from network application protocols through the use of network stream reassembly software."
- "## How it works
Protocol stream reassembly software recreates a directional byte stream by analyzing captured network packets. Once the stream is reassembled pattern matching is applied to determine if it contains a file of interest. Files of interest range from executable, archive, or document file formats. Once the file is captured, it is then processed with standard File Analysis Techniques. Example network protocols include HTTP, SMTP, FTP, HTTP/2, and TLS/HTTP/Dropbox.
## Considerations
- This is an error prone process due to the intricacies of network protocols and network packet capture. For example reassembly may be done in real-time or streaming fashion, or packets may be written to disk, then bulk processed. The packets may arrive out of order, with fragmentation, duplicates, or re-transmissions. The reassembly software must compensate for the imperfect packet stream in order to recreate the well formed file which was transmitted.
- File type identification can be a difficult process which can be exploited by adversaries."
- "Employing a pattern matching rule language to analyze files."
- "## How it works
Rules, often called signatures, are used for both generic and targeted malware detection. The rules are usually expressed in a domain specific language (DSL), then deployed to software that scans files for matches. The rules are developed and broadly distributed by commercial vendors, or they are developed and deployed by enterprise security teams to address highly targeted or custom malware. Conceptually, there are public and private rule sets. Both leverage the same technology, but they are intended to detect different types of cyber adversaries.
## Considerations
* Patterns expressed in the DSLs range in their complexity. Some scanning engines support file parsing and normalization for high fidelity matching, others support only simple regular expression matching against raw file data. Engineers must make a trade-off in terms of:
* The fidelity of the matching capabilities in order to balance high recall with avoiding false positives,
* The computational load for scanning, and
* The resilience of the engine to deal with adversarial content presented in different forms-- content which in some cases is designed to exploit or defeat the scanning engines.
* Signature libraries can become large over time and impact scanning performance.
* Some vendors who sell signatures have to delete old signatures over time.
* Simple signatures against raw content cannot match against encoded, encrypted, or sufficiently obfuscated content.
## Implementations
* YARA
* ClamAV"
- "File Content Signatures"
- "File Signatures"
- "Analyzing the properties of file create system call invocations."
- "Encrypting a file using a cryptographic key."
- "## How it Works
Files are encrypted using either a single key for both encryption and decryption or separate keys. Single key encryption is symmetric encryption and using two key distinct keys is asymmetric encryption.
### Symmetric Cryptography
Symmetric encryption uses the same cryptographic key for both the encryption and decryption a file. Managing keys at scale sometimes uses asymmetric key exchange protocols such as Diffie-Hellman can be used to share the symmetric cryptographic key with the others.
### Asymmetric Cryptography
Asymmetric encryption is typically accomplished using public and private key certificates based on the X.509 standard. Files are encrypted using the public key and decrypted using their private key. Asymmetric encryption is typically slower than symmetric encryption and not widely used for large file encryption, but is popular for key wrapping, key exchanges, and digital signatures.
## Considerations
- Continuous monitoring to ensure private keys are not compromised and the certificate authority (CA) is trusted.
- Secure transfer of private keys between multiple devices."
- "Employing file hash comparisons to detect known malware."
- "## How it works
This technique requires a list of hashes to compare a file against.
## Considerations
Performance on large files or very large numbers of files."
- http://wordnet-rdf.princeton.edu/id/05876035-n

- http://dbpedia.org/resource/File_system

- http://dbpedia.org/resource/Hard_link

- http://dbpedia.org/resource/File_system#Metadata

- "File Transfer Network Traffic"
- http://dbpedia.org/resource/Firmware

- "Analyzing the behavior of embedded code in firmware and looking for anomalous behavior and suspicious activity."
- "## How it works
Firmware behavior analysis provides protections by ensuring that installed firmware has not been tampered with or modified. Firmware analysis applies to mutable firmware and immutable read-only memory (ROMs).
Firmware in deployed network devices is typically not analyzed and monitored for vulnerabilities and thus is subject to potential attacks. This technique makes use of known and measured behavioral attributes, including timing attributes, of analyzed firmware on deployed devices.
A behavioral method that employs known timing measurements may use the timing results from a challenge and response protocol to detect the presence of malware in embedded firmware. Firmware device timing measurements are made, specific to the installed device, and are used in the verifying function.
The original firmware image is modified by injecting a monitoring software component into the embedded firmware code. The injected software components will allow for a software root of trust, the challenge and response protocol, to be implement in the firmware.
A challenge-response is issued and includes a nonce so that replays are not allowed. The firmware will calculate a checksum over all of memory, including the nonce, and return the result. The verification system will compare the computed checksum and the time it took for the computation of the checksum to determine if the firmware has been modified.
## Considerations
* The firmware code will need to be modified to include the behavioral monitoring functionality.
* This technique is sensitive to the device the embedded firmware is hosted on and it is expected that the devices and firmware will need to be profiled and analyzed to determine timing estimation.
* This technique is not expected to be one hundred percent correct as you would expect in a hardware root of trust solution and may require some tuning."
- "Firmware Behavior Analysis"
- "Firmware Timing Analysis"
- "Monitoring code is injected into firmware for integrity monitoring of firmware and firmware data."
- "## How it works
Firmware in deployed network devices is typically not monitored for malicious changes. This technique provides a method to embed a software security component into the deployed firmware which provides a near real-time monitoring hook. The exception handling code, in the firmware, is typically used to expose any detected vulnerabilities.
The injected software components provide a feature similar to intrusion detection systems for the firmware by detecting unauthorized modifications of the embedded firmware. The integrity of static code and firmware data are monitored continuously in the hosted devices. Comparisons are made to monitored elements like firmware memory addresses and data segments. Memory pages are scanned and if a modification is detected the software component may lock the page. This will protect subsequent attempted modifications to the firmware. The software component may utilize the exception handling code and thus be able to disclose the exact address of the modified memory.
The injected software components are inserted during the firmware imaging process. The injected software is assumed to have knowledge of both the embedded code and the current execution state of the host program. The injected software will monitor and alert, in near real-time, on potential suspicious activity. The injected code is run alongside of the embedded code in the host. The injected software operates as an independent entity and is not dependent on the host software.
Finally, this technique may implement other countermeasure techniques as part of their analytical processes. These should be identified by referencing other countermeasure techniques directly as necessary.
## Considerations
* The firmware code will need to be modified and re-hosted on the device.
* Exposing monitoring hooks to the injected code may introduce additional risk."
- "Firmware Embedded Monitoring Code"
- "Cryptographically verifying firmware integrity."
- "## How it works
Cryptographic hash values are computed for system and peripheral firmware. The hash values are compared against precomputed hash values for the identified firmware. A hash value mismatch may indicate that the firmware may have been tampered with or updated with a non-current release indicating a misconfiguration for the system.
## Considerations
* Requires cryptographically computed hash values of firmware
* Requires storage of precomputed firmware hash values"
- "Blocking a lookup based on the query's domain name value."
- "## How it works
Policies are created that filter DNS queries using fully qualified domain name (FQDN) of record in the query. A DNS policy can be created for blocking DNS queries from FQDNs that have been identified as unauthorized.
## Considerations
Continuous maintenance of unauthorized domain lists is needed to keep up to date as updates occur."
- "Forward Resolution Domain Denylisting"
- "Forward Resolution Domain Blacklisting"
- "Blocking a DNS lookup's answer's IP address value."
- "## How it works
This technique prevents a client from learning IP addresses deemed to be potentially malicious, which would have been delivered via forward resolution responses.
Responses to forward resolution requests (that is, requests where a domain is sent and IP(s) are returned) are collected, and the IP address(es) included as a response are examined. If the IP address(es) are in a range included in the blacklist, then the response is dropped and not forwarded to the client.
The DNS lookup can be blocked by either dropping the network traffic with an inline device, or modifying the value of the response sent by the DNS server. To transparently prevent client applications from hanging on a request, it is common practice to replace malicious values with addresses in the range 127.0.0.0/8 or the address of a honeypot maintained by the network administrators.
## Considerations
* This technique does not prevent the client from contacting the blacklisted IP, only from learning about this IP address via a nameserver lookup request.
* DNS Response traffic can be transmitted over many different protocols, which presents a challenge to implementing methods to extract all DNS answer IP address value(s).
* DNS has historically used UDP port 53, with TCP port 53 instead used for responses over 512 bytes or after a lack of response over UDP.
* Usage of new protocols to provide confidentiality for DNS traffic, such as DoH (DNS over HTTPS) and DoT (DNS over TLS), complicates collection of the IP address(es) in DNS responses. These protocols have often been enabled in browser settings transparently after a browser update, with DNS requests proxied over one of these cryptographic protocols through a specified host.
* This technique must be implemented logically between the application that receives the response and the server which sent the response.
* DNS responses sent in an encrypted manner, such as those using DoH or DoT, will require interception of the TLS connections in order to determine the IP address(es) in the response.
* Replacing the response is not effective in the case that the nameserver uses a technique to provide integrity of its responses, such as DNSSEC for DNS responses."
- "Forward Resolution IP Denylisting"
- "Forward Resolution IP Blacklisting"
- "Regsvr32 can be used to execute arbitrary code in the context of a Windows signed binary, which can be used to bypass application whitelisting. This analytic looks for suspicious usage of the tool. It's not likely that you'll get millions of hits, but it does occur during normal activity so some form of baselining would be necessary for this to be an alerting analytic. Alternatively, it can be used for hunt by looking for new or anomalous DLLs manually."
- "Reference - CAR-2019-04-002: Generic Regsvr32 - MITRE"
- 'Process Lineage Analysis'
- "CAR-2019-04-002: Generic Regsvr32"
- https://man7.org/linux/man-pages/man2/time.2.html

- https://networkencyclopedia.com/global-user-account

- http://dbpedia.org/resource/Graphical_user_interface

- "Graphical User Interface"
- "The harden tactic is used to increase the opportunity cost of computer network exploitation. Hardening differs from Detection in that it generally is conducted before a system is online and operational."
- "Preventing one process from writing to the memory space of another process through hardware based address manager implementations."
- "## How it works
Process isolation, in this context, is address space separation controlled by a security function that limits the communication between processes so that one process cannot directly modify the executing code of another process. For example with virtual address space:
* Process A address space is different from process B address space, which prevents process A from writing to process B
Hardware process isolation is commonly implemented through Direct Memory Access (DMA) which collaborates with a Memory Management Unit (MMU), or Input-Output Memory Management Unit (IOMMU). These hardware controls are deployed directly on processors to aid hosts or enclaves in process isolation.
* DMA - Direct memory access allows memory access to occur independently of the program currently run by the microprocessor. DMA allows for I/O devices to directly read from and write to memory, or it can be used to efficiently copy blocks of memory. During DMA transfers, the microprocessor can execute an unrelated program.
* MMU - A memory management unit acts as an access control and is responsible for performing the translation of virtual memory addresses to physical memory addresses. The MMU allocates each process its own virtual memory space.
* IOMMU - An input-output memory management unit is used to allocate each I/O device its own virtual address space to the underlying physical addresses. IOMMU allows devices that do not support long memory addresses to address the entire memory space.
## Considerations
* Private hosts may be vulnerable to DMA attack if they have a PCI or PCI Express port that connects attached devices directly to physical address space.
## Implementations:
* Intel Virtualization Technology for Directed I/O (Intel VT-d)
* Firecracker"
- "Hardware-based Process Isolation"
- http://dbpedia.org/resource/Computer_hardware

- http://dbpedia.org/resource/Device_driver

- "Blocking the resolution of any subdomain of a specified domain name."
- "## How it works
This technique is used to block DNS queries from related domains and subdomains that are unauthorized.
Hierarchical domain blacklisting considers the blacklisting of second level domains and additional sub-domains and specific hosts for a given query value. A denylist is maintained that contains DNS names and corresponding subdomains, including wildcards, that should be blocked for a given lookup.
## Considerations
* The denylist of domain names will have to be maintained and will need to be kept up to date
* Other domains that resolve to the domain of interest for blocking (CNAME, etc).
* Denylists should have identified maintenance cycles to ensure lists are not stale."
- "Hierarchical Domain Denylisting"
- "Hierarchical Domain Blacklisting"
- "Blocking DNS queries that are deceptively similar to legitimate domain names."
- "## How it works
Homoglyph domain blacklisting considers the domain and subdomain structure of a lookup and compares the named components to blacklisted named components. The blacklisted named components are typically crafted modifications of known good domains, e.g., gooogle.com versus google.com. The blacklisted domains typically resemble trusted domains, but have been altered slightly to deceive users.
The blacklisted named components also include consideration for fonts or Unicode characters that can make certain characters appear very similar (zero vs capital O and the letter l vs the number one). The blacklisted domains under certain fonts will appear to be a trusted domain.
## Considerations
* Maintaining the currency of the list can be a challenge especially with newly registered domain entries.
* Blacklists should have identified maintenance cycles to ensure lists are not stale."
- "Comparing strings using a variety of techniques to determine if a deceptive or malicious string is being presented to a user."
- "## How it works
A homoglyph, in this context, is a deceptive string or word which looks like a trusted word, but is composed of different characters, for example: goooogle.com versus google.com. This is commonly found in phishing and typo squatting attacks where a human exploiting through a social engineering campaign.
## Considerations
* In very large environments processing DNS queries can be computationally expensive due to the amount of traffic that is generated
* Legitimate companies and products use non-dictionary words in their names that could result in many false positives"
- http://dbpedia.org/resource/Host_(network)

- "When entering on a host for the first time, an adversary may try to discover information about the host. There are several built-in Windows commands that can be used to learn about the software configurations, active users, administrators, and networking configuration. These commands should be monitored to identify when an adversary is learning information about the system and environment. The information returned may impact choices an adversary can make when establishing persistence, escalating privileges, or moving laterally.
Because these commands are built in, they may be run frequently by power users or even by normal users. Thus, an analytic looking at this information should have well-defined white- or blacklists, and should consider looking at an anomaly detection approach, so that this information can be learned dynamically."
- "Reference - CAR-2016-03-001: Host Discovery Commands - MITRE"
- "CAR-2016-03-001: Host Discovery Commands"
- http://dbpedia.org/resource/Hostname

- "Limiting access to computer input/output (IO) ports to restrict unauthorized devices."
- "## How It works
Software-based restriction uses agent software installed on a computer system. The agent software monitors all IO port system traffic. The agent software is configurable to limit the use of certain devices connected to IO ports. The restriction software can also be configured to limit the access to files and applications on external storage devices connected to IO ports.
Hardware-based restriction can also be employed to limit access to IO ports. For example, a hardware USB filter device that is placed between the host system and the external devices can filter IO port connections based on configurable rules. When new devices are connected to the USB filter the type of device is determined. Using an allow list a connection determination is made for the device.
Some implementations detect when a device is connected in order to authorize the connection against a list of approved devices, in some cases by device type. For example, if the device is determined to be a storage device, then the contained files and executables are examined to more accurately identify the device type.
Types of restrictions that may be applied:
- Device connection
- Device command filtering
- Device file system read or write restrictions
## Considerations
* Agent software will need to be installed on host systems
* Configurations for allow/deny for devices and files will need to be maintained"
- "Analyzing standard inter process communication (IPC) protocols to detect deviations from normal protocol activity."
- "## How it works
Inter process communication enables applications or threads to share data. This can involve one or more computers. Monitoring IPC in your environment can reveal abnormal or malicious activity.
IPC can occur within a single computer or between multiple computers remotely through network protocols. Thus there are multiple ways to collect and monitor these exchanges between processes. A network protocol analyzer may monitor and parse SMB network traffic to record system activity. A host based monitoring agent may monitor IPC activity contained within a single host to look for deviations from standard usages.
### Examples
* SMB
* Zeromq
* Java RMI API
## Considerations
* IPC can generate substantial amounts of data, and it may not be feasible to collect all of it.
* IPC may occur over loopback interfaces or direct memory access granted by the operating system."
- http://dbpedia.org/resource/Identifier

- "Analyzing identifier artifacts such as IP address, domain names, or URL(I)s."
- http://dbpedia.org/resource/Code_segment

- "Process Code Segment"
- http://dbpedia.org/resource/Data_segment

- "Process Data Segment"
- "In-memory Password Store"
- "Inbound Internet DNS Response Traffic"
- "Inbound Internet Mail Traffic"
- http://dbpedia.org/resource/Internetworking

- "Inbound Internet Network Traffic"
- http://dbpedia.org/resource/Internetworking

- "Inbound Network Traffic"
- "Analyzing inbound network session or connection attempt volume."
- "## How it works
Network appliances are configured to alert on certain packets that typically are involved in DoS attacks. Typical packets include ICMP packets and SYN requests that are commonly used to flood networks. A sampling period is used to define a time window in which collected counts of the identified packets can be measured. If the collected number of packets exceeds a predefined limit then an alert is generated.
## Considerations
Scalability as volume of attacks increase; single servers may not have the memory and storage resources to handle high volumes of network traffic."
- "Inbound Session Volume Analysis"
- "Restricting network traffic originating from untrusted networks destined towards a private host or enclave."
- "## How it works
Inbound Traffic, in this context, is network traffic originating from an untrusted network towards a private host or enclave.
For example:
* An untrusted network host connecting to a internal commercial portal, shopping.example.com
* An external mail server connecting to an internal mail server, mail.example.com
Filtering policies are developed by administrators to meet business requirements and limit connectivity. These policies are implemented on edge devices such as firewalls, routers, and intrusion prevention systems. Examples of filters:
* Blocking incoming traffic from spoofed internally facing IP addresses
* Blocking specific ports and services from establishing connections
* Limiting specific IP ranges from connecting to the network
* Dynamic inbound filtering (Hole punching, STUN, NAT-T)
## Considerations
* Business requirements typically drive the development of filtering rulesets
* Protocols using non-standard ports may circumvent filtering technology, which does not detect application protocol based on traffic content
## Implementations
* OpenWRT (Embedded)
* Netfilter (Linux)
* Windows Firewall
* pf(BSD)"
- "Inbound Traffic Filtering"
- "Analyzing vendor specific branch call recording in order to detect ROP style attacks."
- "## How it works
This technique is used to detect an attacker attempting to exploit and execute code on a target system's call stack using return-oriented programming (ROP). Modern processors that have the ability to maintain a list of the branching calls, e.g., Intel's Last Branch Recording (LBR), can be used to track and analyze indirect branching calls that are indicative of malicious activity.
In order to reduce the number of indirect branch calls to analyze to a manageable set it is assumed that malicious ROP activity will involve the use of system calls. The technique observes indirect branch calls that are part of paths that lead to system calls, all others are ignored. Branching calls chained together is often referred to as gadgets and gadgets are often used in ROP attacks. Indirect branch calls that involve a transfer from user-space to kernel-space are of interest for this technique.
Identification of potential ROP exploit execution includes:
- Inspecting the LBR when a system function call is made
- The LBR is configured to return only instruction of interest (ret, indirect jmp, indirect calls)
- Behavior is analyzed for
- Ret instructions that appear to target areas not preceded by the call sites
- Sequences of small code fragments that appear to be chained through the indirect branching calls (gadgets)
- Of interest are returns that appear to not render control back after calls
- Typical ret-call are paired
- gadgets will appear to have ret followed by instruction of next instruction of the following gadget
## Considerations
* May be operating system dependent since specific system calls are used to scope branching behavoir
* Processors need to support access to a Last Branch Recording list feature
* The size of the LBR stack can limit the expected size of the analyzed execution stack
* If processor does not support LBR then overhead costs for the analysis can be significant"
- "Indirect Branch Call Analysis"
- "Initial Access Technique"
- http://dbpedia.org/resource/Input_device

- "Operating system level mechanisms to prevent abusive input device exploitation."
- "## How it works
Input Device Hardening techniques filter certain commands, or disable related operating system functionality.
### Analytics
All of these values can be analyzed and compared to a baseline:
* Amount of input
* Duration of a single input
* Durations between inputs
* Value of input
Context can also include:
* User which is logged in, to include attributes such as physical location of the user
* Date and time
* System which is processing the input
* Source device of input, to include its properties (eg. manufacturer), configuration (eg. keyboard layout) and behavioral attributes of this device (eg. first use)
* Source system of input (local or remote system)
* Other hardware devices attached to the system
### Actions
Actions can include:
* Disabling the source device
* Sending an alert
* Locking the current session (eg. system screen lock, or returning to an authentication screen in a web app) and requiring one or more methods of authentication to continue
* Administratively disabling credentials for the account or the entire account -- the technique *Account Locking*
### Examples
A malicious input device sends many keystrokes with approximately the same delay between each. This does not match the normal cadence of input, and the device is disabled.
Input to type the session user's name takes abnormally longer for each keystroke. The system is locked to the password prompt screen.
A system receives key press events from two different devices -- one device sends keystrokes after the other has been idle for a long time.
A system receives physical input in a user session, while that user has sent input from a device located out of the country in the past hour.
Network traffic is suddenly routed through a new external device, and nearly the same volume of network traffic is subsequently sent out the previously existing interface. The new external device is disabled, and an alert is raised to investigate the network configuration for a potential compromise.
## Considerations
Given some example of legitimate behavioral input patterns, attackers could mimic those input patterns, a technique which has been used in popular culture in the creation of Deepfake videos and [This Person Does Not Exist](https://thispersondoesnotexist.com)."
- "The practice of setting decoys in a production environment to entice interaction from attackers."
- "## How it works
Integrated honeynets use full production environments connected to the enterprise network, that utilize computing resources or software that attract attackers, and allow full interaction and access that provides a complete view of an attack.
## Considerations
An attacker with control of a system on an Integrated Honeynet could:
* try to attack other connected hosts on the network, its IP range of internal hosts not properly configured to react to connections from machines on the integrated honeynet, or position behind the firewall.
* exploit its position by eavesdropping on network traffic
If an attacker manages to stop the processes used to log an attack without setting off any alarms. [1]
1. Honeypots for Windows, Roger Grimes, 2005"
- "Internationalized Domain Name"
- "Internet Network Traffic"
- http://dbpedia.org/resource/Internetworking

- http://dbpedia.org/resource/Inter-process_communication

- "Interprocess Communication"
- "Intranet Administrative Network Traffic"
- http://dbpedia.org/resource/Intranet

- "Intranet File Transfer Traffic"
- http://dbpedia.org/resource/File_transfer

- http://dbpedia.org/resource/Intranet

- "Intranet IPC Network Traffic"
- http://dbpedia.org/resource/Inter-process_communication

- http://dbpedia.org/resource/Intranet

- "Intranet Multicast Network Traffic"
- http://dbpedia.org/resource/Multicast

- http://dbpedia.org/resource/Intranet

- "Intranet Network Traffic"
- http://dbpedia.org/resource/Intranet

- "Intranet Web Network Traffic"
- http://dbpedia.org/resource/Intranet

- "The isolate tactic creates logical or physical barriers in a system which reduces opportunities for adversaries to create further accesses."
- "Detecting anomalies in user access patterns by comparing user access activity to behavioral profiles that categorize users by role such as job title, function, department."
- "## How it works
Peer group analysis identifies functionally similar groups of actors (users or resources) based on categorizations such as job title, organizational hierarchy, or other attribute that indicates similarity of job function. Current user access activity is then compared to the appropriate peer group behavior profile to identify anomalies.
## Considerations
Potential for false positives from anomalies that are not associated with malicious activity."
- "Job Function Access Pattern Analysis"
- "Kerberos Ticket Granting Ticket"
- http://dbpedia.org/resource/Ticket_Granting_Ticket

- http://dbpedia.org/resource/Kernel_(operating_system)

- "Using kernel-level capabilities to isolate processes."
- "Kernel-based Process Isolation"
- "LKM"
- "Loadable Kernel Module"
- http://dbpedia.org/resource/Loadable_kernel_module

- https://encyclopedia2.thefreedictionary.com/process+table

- http://dbpedia.org/resource/Process_(computing)

- https://www.geeksforgeeks.org/process-table-and-process-control-block-pcb/

- "Computer Keyboard"
- "Keyboard"
- http://dbpedia.org/resource/Computer_keyboard

- "LUKS is short for "Linux Unified Key Setup". It has initially been developed to remedy the unpleasantness a user experienced that arise from deriving the encryption setup from changing user space, and forgotten command line arguments. The result of this changes are an unaccessible encryption storage. The reason for this to happen was, a unstandardised way to read, process and set up encryption keys, and if the user was unlucky, he upgraded to an incompatible version of user space tools that needed a good deal of knowledge to use with old encryption volumes."
- "LUKS1 On-Disk Format SpecificationVersion 1.2.3"
- "LUKS1 On-Disk Format SpecificationVersion 1.2.3"
- "Lateral Movement Technique"
- http://dbpedia.org/resource/Legacy_system

- "Analyzing local user accounts to detect unauthorized activity."
- "Local Account Monitoring"
- http://dbpedia.org/resource/Local_area_network

- "Local Area Network Traffic"
- http://dbpedia.org/resource/Intranet

- "Restricting access to a local file by configuring operating system functionality."
- http://dbpedia.org/resource/System_resource

- "Endpoint Resource Access"
- http://wordnet-rdf.princeton.edu/id/06515215-n

- http://dbpedia.org/resource/Chronology

- http://dbpedia.org/resource/Log_file

- http://wordnet-rdf.princeton.edu/id/06515875-n

- http://dbpedia.org/resource/Login_session

- "ProcDump is a sysinternal command-line utility whose primary purpose is monitoring an application for CPU spikes and generating crash dumps during a spike that an administrator or developer can use to determine the cause of the spike.
ProcDump may be used to dump the memory space of lsass.exe to disk for processing with a credential access tool such as Mimikatz. This is performed by launching procdump.exe as a privileged user with command line options indicating that lsass.exe should be dumped to a file with an arbitrary name."
- "Reference - CAR-2019-07-002: Lsass Process Dump via Procdump - MITRE"
- "CAR-2019-07-002: Lsass Process Dump via Procdump"
- "Application Developer Guidance"
- "Active Directory Configuration"
- "User Account Management"
- "Threat Intelligence Program"
- "Restrict Web-Based Content"
- "Restrict File and Directory Permissions"
- "Restrict Registry Permission"
- "Privileged Process Integrity"
- "Privileged Account Management"
- "Operating System Configuration"
- "Network Intrusion Prevention"
- "Multi-factor Authentication"
- "Limit Software Installation"
- "Limit Hardware Installation"
- "Limit Access to Resource Over Network"
- "Environment Variable Permissions"
- "Behavior Prevention on Endpoint"
- "Encrypt Sensitive Information"
- "Disable or Remove Feature or Program"
- "Credential Access Protection"
- "Restrict Library Loading"
- "Application Isolation and Sandboxing"
- http://dbpedia.org/resource/Keychain_(software)

- "Email Server Resource"
- "MTA"
- "MX Host"
- "Mail Exchanger"
- "Mail transfer agent"
- "Message transfer agent"
- http://dbpedia.org/resource/Message_transfer_agent

- "Controlling access to local computer system resources with kernel-level capabilities."
- "## How it works
Mandatory access control is a non-discretionary access control system because the rules and polices that determine access is determined by a security control authority and not distributed to local users. Access determinations are based on designed access control polices and are not based on local resource owner determinations.
Access is typically granted by defining sets of subjects and sets of objects. Subjects are the entities requesting access and objects are the resources that subjects are trying to access. Rules and policies are defined that associate subjects and object permissions and access controls.
### Common MAC implementations
#### Security label access control
A fine-grained form of mandatory access control is to apply security labels to individual resources, including processes, and the access control decisions are against a particular resource and a given user attempting to gain access. This type of MAC requires that the file system has built-in support for security labels.
Access controls are typically implemented through the use of label identifiers for every file system object. Identifier labels are applied to resources and users are assigned a similar access identifier. Users attempting to access a resource will result in the operating system performing an access control check. The access control check will compare the assigned user's credentials to that of the resource or object they are attempting to access.
A security context is associated with resources and is used to determine assess. Typical basic access control elements include users, roles and types and together they form a security context which is the basis for the security labels.
This type of access control is what is employed in SELinux [2]. This form of MAC is considered the most flexible implementation, but it also is the most complex to deploy across the enterprise. Where multiple virtual machines (VM) are run together this type of access control is typically employed to ensure true isolation of processes and VMs.
#### File path level controls
A less fine-grained form of mandatory access control is to apply security labels that allow for access control at the file path level. Access control is filesystem agnostic and no relabeling of resources is required. Pathname access control usually seems more natural for implementation and corresponding access audits.
This type of MAC is what is employed in AppArmor [3]. AppArmor was developed to provide a simpler alternative MAC method with much less management overhead. A simple access policy is maintained that defines path resource access rules. Access control attributes are typically associated with programs instead of users.
## Considerations
Some implementations of security label mandatory access control contain complex rules set that are hard to verify and complex to maintain over time.
Initial planning of access model and continuous monitoring of the available users, resources and object is necessary.
## Implementations
* Linux C-Groups, and policy engines like SELinux and AppArmor
* Windows Mandatory Integrity Control introduced in Windows Vista
### Citations
1. [Implementation of Mandatory Access Control in Distributed Systems](https://link.springer.com/article/10.3103/S0146411618080357)
2. [SELinux](https://selinuxproject.org/)
3. [AppArmor](https://www.apparmor.net/)"
- "Mandatory Access Control"
- "Analyzing a call stack for return addresses which point to unexpected memory locations."
- "## How it works
This technique monitors for indicators of whether a return address is outside memory previously allocated for an object (i.e. function, module, process, or thread). If so, code that the return address points to is treated as malicious code.
## Considerations
Kernel malware can manipulate memory contents, for example modifying pointers to hide processes, and thereby impact the accuracy of memory allocation information used to perform the analysis."
- "Memory Boundary Tracking"
- "Analyzing email or instant message content to detect unauthorized activity."
- "## Technique Overview
Email and messaging are frequently used to deliver malicious content to targets. These enterprise capabilities are used to deliver software exploits or social engineering tricks. If the recipient of a message trusts the sender, attackers can avoid escalating suspicion.
Emails and messages are also complex data structures. They contain files and links, and complex data encodings which vary region to region. Thus the defensive techniques used to analyze emails and messages are highly varied ranging from deep content analysis and execution to social network graph-style analytics to analyze trust or risk."
- "Electronic Message Analysis"
- "Email Or Messaging Analysis"
- "Authenticating the sender of a message and ensuring message integrity."
- "## How it works
### Digital Signature
Digital signatures are used to verifying a message is from the expected sender. In email, Secure/Multipurpose Internet Mail Extensions (S/MIME) protocol is typically used to digitally sign messages. A hash value of the sender's message is created and encrypted with the sender's private key to create a digital signature. The message and the digital signature are sent to the recipient where the sender's public key is used to decrypt the digital signature and compute the hash of the message. The computed hash is compared with the hash from the received message, and any difference in the hash values signify the message did not originate from the sender and has been alerted in transit.
### Message Authentication Code (MAC)
MAC is a fixed size string that is appended to a message to provide message authentication and integrity. The sender MAC signing algorithm takes as input a secret symmetric key shared between sender and recipient and the message to calculate a short tag that is appended to the message. The recipient receives the message with the appended tag, and a MAC verification algorithm is run using the symmetric key to verify the message came from the stated sender and ensure the message has not been tampered with.
## Considerations
- Public keys associated with digital signatures should be verified by a Certification Authority (CA) to prevent impersonation. The CA verifies the owner of a public key and puts the sender's identity and public key into a certificate that is signed by the CA.
- Digital signatures provide non-repudiation where a third party can verify the authenticity of the message using the sender's digital certificate signed by the CA.
- Symmetric keys must be exchanged securely via a private channel and management of new symmetric keys are needed for each pair of participants wishing to exchange messages."
- "Encrypting a message body using a cryptographic key."
- "## How it works
### Asymmetric Cryptography
Asymmetric encryption is typically accomplished using public and private key certificates based on the X.509 standard. The sender encrypts messages using the recipient's public key and the receipt decrypts the message using their private key. Standards that can be used to implement message encryption include S/MIME (Secure/Multipurpose Internet Mail Extensions) and PGP.
### Symmetric Cryptography
Symmetric encryption uses the same cryptographic key by both the sender and receiver to encrypt and decrypt a message. Asymmetric key exchange protocols such as Diffie-Hellman can be used to share the cryptographic key with the recipient.
## Considerations
- Separate configuration settings to enable message encryption are often needed for each messenger client (e.g. webmail, desktop client, mobile).
- Continuous monitoring to ensure private keys are not compromised and the certificate authority (CA) is trusted.
- Secure transfer of private keys between multiple devices."
- "Email or Messaging Hardening includes measures taken to ensure the confidentiality and integrity of user to user computer messages."
- "Email Or Messaging Hardening"
- "MTA"
- "Mail Transfer Agent"
- http://dbpedia.org/resource/Message_transfer_agent

- "Microsoft VCCLCompilerTool BufferSecurityCheck"
- "Microsoft Word DOCB File"
- "Microsoft Word DOC File"
- "Microsoft Word DOCM File"
- "Microsoft Word DOCX File"
- "Microsoft Word DOT File"
- "Microsoft Word DOTM File"
- "Microsoft Word DOTX File"
- "Microsoft Word WBK File"
- https://man7.org/linux/man-pages/man2/rename.2.html

- "Requiring proof of two or more pieces of evidence in order to authenticate a user."
- "## How it works
When logging into an account users present two or more credentials that fall into different categories: something you know (password or PIN), something you have (smart card or phone), or something you are (fingerprint).
## Considerations
MFA configuration steps may vary across accounts and in some cases left up to users to activate and implement."
- "Multi-factor Authentication"
- "Network Directory Resource"
- "Network File Share Resource"
- "Network Init Script File Resource"
- "Network Isolation techniques prevent network hosts from accessing non-essential system network resources."
- http://dbpedia.org/resource/Node_(networking)

- http://dbpedia.org/resource/Network_packet

- http://dbpedia.org/resource/Shared_resource

- "Network Resource Access"
- http://dbpedia.org/resource/OSI_model

- http://dbpedia.org/resource/Session_(computer_science)

- http://dbpedia.org/resource/Network_traffic

- "Analyzing intercepted or summarized computer network traffic to detect unauthorized activity."
- "Network Traffic Analysis"
- "Establishing baseline communities of network hosts and identifying statistically divergent inter-community communication."
- "## How it works
Hosts/users within a computer network are analyzed to identify communities of hosts which frequently communicate. Future communications between communities that don't usually communicate can then be detected. For example, if a community of hosts that communicate in support of a company's finance division suddenly starts to access the code server usually accessed only by engineers, this may indicate unauthorized activity.
## Considerations
* Potential for false positives in very dynamic network environments.
* Attackers that move low and slow may not differentiate their behavior enough to trigger an alert."
- "Network Traffic Community Deviation"
- "Restricting network traffic originating from any location."
- "Network Traffic Filtering"
- http://dbpedia.org/resource/Object_file

- "Office Application File"
- "A one-time password is valid for only one user authentication."
- "## How it works
When a user initiates authentication, they are asked for a one-time password, often in addition to other credentials such as a traditional password or smart card. The one-time password may be from a list provided in advance, sent via a channel such as SMS or HTTPS to an app, or a generated token.
In the case of a physical token which generates one-time passwords incrementally based on time elapsed, that token device need not be connected to the internet. In different implementations, an administrator of the system, or a user with additional verification, can adjust for clock skew between the token and the verification system as needed.
## Considerations
### Compromise of delivery channel
- SIM Swapping
- Secure token visual compromise
- Insecure delivery channel
### Compromise of delivery device
Physical loss of One-time Password device.
### Compromise of long-term backup codes
These are often provided in the form of a downloadable document with a regular name, which can be searched for in the case that the user forgets where they put them. This digital file or printed document could be stolen.
Additionally, after the code file is printed, it could be recovered from the system printer spool unless the spooler cache is cleared."
- http://dbpedia.org/resource/One-time_password

- http://dbpedia.org/resource/Operating_system

- "Operating System Configuration Information"
- "System Configuration"
- "Operating System Configuration Component"
- http://wordnet-rdf.princeton.edu/id/03085025-n

- "System Configuration File"
- "Operating System Configuration File"
- http://dbpedia.org/resource/Configuration_file

- "Configuration File"
- "Operating System"
- "Operating System Executable File"
- http://dbpedia.org/resource/Operating_system

- http://dbpedia.org/resource/System_file

- http://dbpedia.org/resource/Log_file

- "Operating System Log File"
- "The operating system software, for D3FEND's purposes, includes the kernel and its process management functions, hardware drivers, initialization or boot logic. It also includes and other key system daemons and their configuration. The monitoring or analysis of these components for unauthorized activity constitute **Operating System Monitoring**."
- "## Technique Overview
"An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs." [1]
Operating System Monitoring Techniques have varied implementations including built-in kernel modules, third-party privileged system daemons, or even standard systems administration tools included with an operating system.
1. http://dbpedia.org/resource/Operating_system"
- "Operating System Monitoring"
- "Operating System Process"
- http://people.scs.carleton.ca/~maheshwa/courses/300/l4/node7.html

- "Operating System Shared Library File"
- http://dbpedia.org/resource/Library_(computing)#Shared_libraries

- "Orchestration Controller"
- "Outbound Internet DNS Lookup Traffic"
- http://dbpedia.org/resource/Internetworking

- "Outbound Internet Encrypted RDP Traffic"
- "Outbound Internet Encrypted SSH Traffic"
- "Outbound Internet Encrypted Remote Terminal Traffic"
- "Outbound Internet Encrypted Traffic"
- http://dbpedia.org/resource/Internetworking

- "Outbound Internet Encrypted Web Traffic"
- http://dbpedia.org/resource/Internetworking

- "Outbound Internet File Transfer Traffic"
- http://dbpedia.org/resource/File_transfer

- http://dbpedia.org/resource/Internetworking

- "Outbound Internet Email Traffic"
- "Outbound Internet Mail Traffic"
- http://dbpedia.org/resource/Internetworking

- "Outbound Internet Network Traffic"
- http://dbpedia.org/resource/Internetworking

- "Outbound Internet Web Traffic"
- http://dbpedia.org/resource/Internetworking

- "Outbound Network Traffic"
- "Restricting network traffic originating from a private host or enclave destined towards untrusted networks."
- "## How it works
Outbound traffic, in this context, is network traffic originating from a private host or enclave destined towards untrusted networks.
For example:
* An enterprise desktop intranet user connecting to www.example.com
* An internal mail server connecting to an external mail server, mail.example.com
Filtering is commonly implemented as firewall rulesets to limit outbound traffic permitted to egress a host or network. Firewalls are deployed either directly on hosts through kernel level software implementations or installed in-line directly on network links. There are benefits and disadvantages to each approach.
There are various strategies for developing filtering rulesets:
* Block everything by default
* Limit destination hosts
* Limit destination transport or application protocols
* Restrict content outbound (Ex. strings formatted as social security numbers, or proprietary data)
## Considerations
* Dynamic IP assignment creates challenges for Outbound Traffic Filtering because users are not necessarily associated with the same IP address. This can be addressed by linking IP address management information with the filtering logic.
* Connections using non-standard transport layer ports may circumvent outbound traffic filtering technology which does not detect application protocol based on traffic content.
* Business requirements typically drive the development of filtering rule sets.
## Implementations
- iptables (Linux)
- Windows Firewall
- pf (BSD)"
- "Outbound Traffic Filtering"
- "Many programs create command prompts as part of their normal operation including malware used by attackers. This analytic attempts to identify suspicious programs spawning cmd.exe by looking for programs that do not normally create cmd.exe.
While this analytic does not take the user into account, doing so could generate further interesting results. It is very common for some programs to spawn cmd.exe as a subprocess, for example to run batch files or windows commands. However many process don't routinely launch a command prompt - for example Microsoft Outlook. A command prompt being launched from a process that normally doesn't launch command prompts could be the result of malicious code being injected into that process, or of an attacker replacing a legitimate program with a malicious one."
- "Reference - CAR-2014-11-002: Outlier Parents of Cmd - MITRE"
- 'Process Lineage Analysis'
- "CAR-2014-11-002: Outlier Parents of Cmd"
- http://dbpedia.org/resource/Packet_analyzer

- "Disk Partition"
- "Disk Slice"
- http://dbpedia.org/resource/Disk_partitioning

- http://dbpedia.org/resource/Partition_table

- http://dbpedia.org/resource/Memory_management_(operating_systems)

- http://dbpedia.org/resource/Partition_table

- "Collecting host certificates from network traffic or other passive sources like a certificate transparency log and analyzing them for unauthorized activity."
- "## How it works
Certificates are analyzed outside of a TLS server connection using third-party secure update logs, domain name analysis and analytics.
### Secure update certificate logs
* Certificate Logs
The key enabling feature is a secure service that maintains record logs of certificate activities. The logs allow users to only append certificates and never to delete or modify the log entries. The logs use Merkle Tree Hashes to ensure they have not been tampered with. The logging service also allows for public auditing by any user.
The logging service, upon receipt of a certificate to log, will respond with a signed certificate timestamp (SCT). The SCT guarantees the certificate will be added to the log within the time specified. The SCT must be present with the certificate during a TLS handshake.
* Certificate Monitoring
Certificate monitoring, of the logs, is typically done by the CA and they watch for suspicious certificate logging and unusual certificates or extensions or permissions. Monitors are also responsible for verifying the logs are accurate and public.
* Certificate Auditors
Log integrity is verified by log auditors. Auditors make use of log proofs are used to validate the cryptographic hashes (Merkle Trees) that the log employs are consistent. In order to ensure consistency throughout multiple monitors and auditors, sharing a common logging service, gossip protocol is employed.
### Phishing domain name analysis
* A curated corpus of known benign domains and phishing domain names is used as training text for machine learning. Through the use of feature set extraction, vectors labels are created with scoring to indicated if they are considered benign or phishing domains.
* A stream of new or updated SSL certificates with fully qualified domain names (FQDN) is analyzed against the feature vectors and a predictive model determines a score for the domains. The scoring considers distance measures such as Levenshtein distance to help in determining the final label score. Supervised learning is also employed using the curated domains of benign and phishing domains.
* Subdomain phishing analysis, prepending a trusted domain to a phishing domain, and regular expression comparisons are also used in the label scoring model. A tunable measure is used to determine the threshold for alerting. This measure helps to balance between precision and recall measures.
## Considerations
* Some entity will need to run the logging service and a trusted entity is preferred.
* Certificate Authorities will likely need to monitor the logging service for consistency.
* Certificate revocation is unchanged and remains outside of Certificate Transparency, but certificates needing to be revoked are visible.
* Technique dependent of reliable feed of new and updated certificates
* Some certificate authorities allow for certificates to be registered with wildcards in the FQDN and thus will fail some of the subdomain scoring
* Phishing HTTP domains will not be discovered"
- "Passive Certificate Analysis"
- http://dbpedia.org/resource/Password

- http://dbpedia.org/resource/Password_manager

- "Detecting anomalies that indicate malicious activity by comparing the amount of data downloaded versus data uploaded by a host."
- "## How it works
Aggregate pull vs. push ratios from metadata are used to develop a baseline for a given host over a specific time period, e.g., over a three-hour period, one day, one week, etc. Anomalies identified over a threshold produce an alert.
## Considerations
Collection and analysis of large network packet captures requires large storage and intensive computing power. The time windows used to calculate the ratio may vary in implementations, this consideration should take into account a threat model and likely effects (impacts) delivered by an adversary."
- "Per Host Download-Upload Ratio Analysis"
- Firmware (Individuals ), Firmware (Classes )
- http://dbpedia.org/resource/Peripheral

- "Cryptographically verifying peripheral firmware integrity."
- "# How it works
Peripherial firmware is collected and analyzed on a host either periodically or on demand. This information may be collected for future comparisons.
Changes in firmware hash values may indicate that the firmware has been tampered with or that firmware images are not maintained to current baselined versions, or even known vulnerable versions are deployed.
## Considerations
* Trust baselines will need to be generated for specific devices
* Changes to trusted configurations will need to be managed across the enterprise"
- "Peripheral Firmware Verification"
- http://dbpedia.org/resource/Location_(geography)

- http://dbpedia.org/resource/Computing_platform

- "Hardening components of a Platform with the intention of making them more difficult to exploit.
Platforms includes components such as:
* BIOS UEFI Subsystems
* Hardware security devices such as Trusted Platform Modules
* Boot process logic or code
* Kernel software components"
- "Endpoint Hardening"
- "System Hardening"
- "Monitoring platform components such as operating systems software, hardware devices, or firmware."
- "Platform monitoring consists of the analysis and monitoring of system level devices and low-level components, including hardware devices, to detect unauthorized modifications or suspicious activity.
Monitored platform components includes system files and embedded devices such as:
* Kernel software modules
* Boot process code and load logic
* Operating system components and device files
* System libraries and dynamically loaded files
* Hardware device drivers
* Embedded firmware devices"
- http://dbpedia.org/resource/Pointer_(computer_programming)

- "Comparing the cryptographic hash or derivative of a pointer's value to an expected value."
- "## How It Works
Pointer Authentication (frequently referred to as PAC, although the technique is properly Pointer Authentication) is a security feature to provide protection against attackers with memory read/write access. A Pointer Authentication Code (PAC) is a cryptographic hash or derivative computed on the value of a pointer and some additional context information which can then provide a cryptographically strong guarantee about the likelihood that a pointer has been tampered with by an attacker.
Although pointers are 64 bits, most systems have a substantially smaller virtual address space, leaving unused bits in pointers that can store the value of the PAC, this can be done to reduce memory space requirements. One implementation is in ARMv8.3-A. A PAC is computed over the 64-bit pointer value and a 64-bit context value. Instructions are introduced to deal with pointers: one category to compute and insert the PAC into a pointer, another category to verify the pointer and invalidate the pointer if the PAC does not check, and a third category to remove the pointer and restore the original value without verifying.
The ARM standard specifies a cryptographic algorithm called QARMA-64 (designed by Qualcomm) to compute the signature, although this algorithm is not required. The architecture provides for five secret 128-bit Pointer Authentication keys: two for instruction pointers, two for data pointers, and a general key for signing larger blocks of data.
## Considerations
In the ARM implementation, the mechanisms above for manipulating PACS are provided, but it is up to the code developer to manage the keys for the cryptographic algorithm.
A known potential limitation of PACs concerns signing gadgets. Under certain circumstances PACs can be bypassed by forcing the system to run a signing gadget which will allow the signing of arbitrary pointers to occur."
- "PowerShell Profile Script"
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.1

- "PowerShell is a scripting environment included with Windows that is used by both attackers and administrators. Execution of PowerShell scripts in most Windows versions is opaque and not typically secured by antivirus which makes using PowerShell an easy way to circumvent security measures. This analytic detects execution of PowerShell scripts.
Powershell can be used to hide monitored command line execution such as:
* net use
* sc start"
- "Reference - CAR-2014-04-003: Powershell Execution - MITRE"
- "CAR-2014-04-003: Powershell Execution"
- http://dbpedia.org/resource/Public-key_cryptography

- "Privilege Escalation Technique"
- http://dbpedia.org/resource/Process_(computing)

- "Process Analysis consists of observing a running application process and analyzing it to watch for certain behaviors or conditions which may indicate adversary activity. Analysis can occur inside of the process or through a third-party monitoring application. Examples include monitoring system and privileged calls, monitoring process initiation chains, and memory boundary allocations."
- "Comparing the "text" or "code" memory segments to a source of truth."
- "## How it works
A process code segment is an executable portion of computer memory allocated to a particular process. Process Code Segment Verification implements verification to compare a process code segment to some expected value.
### Verification logic
Verification can occur during application startup, or continuously during execution. The logic which verifies the process code may be separate in a third-party process, embedded in the application itself at compile time, or dynamically linked at runtime.
### System of record
Examples of systems of record:
* On-disk application binary files or checksums
* Remotely stored binary data or checksums
* Embedded binary data or checksums
### Post Verification Actions
If the verification function determines a process code segment may have been altered, a capability may invoke Eviction techniques as **Process Termination** to end the current process, or **Executable Blacklisting** to prevent the executable from launching in the future.
## Considerations
### False positives
False positives commonly occur in the case that the layout of code in the process segment is legitimately modified:
* Operating system features or third-party security software may modify the layout of process code, for example in the defensive technique **Segment Address Offset Randomization**, or in the case that a module is rebased. In both of these cases, the alteration occurs before the code is fully loaded into memory, and it would be possible to avoid the false positive by securely feeding this constant offset and any relocation data into the verification logic.
* Process code segments may be written to modify themselves or other process code segments; however, this goes against widely-accepted current practices in software development.
### False negatives
False negatives can occur via alteration of the verification logic or source of truth, or insufficient verification logic.
* Verification techniques which are executed only locally may be defeated by altering the local verification logic.
* Verification that is run only on a recurring basis could be evaded if the malicious alteration is completed before verification is run.
* Verification that requests an operation to be performed on a subset of the code segment could be evaded by performing that operation on a copy of the relevant bytes of the code segment.
* Verification based on a system of record that can be altered may fail if that system of record is modifiable by a malicious user."
- "Process Code Segment Verification"
- http://dbpedia.org/resource/Environment_variable

- "Process Environment Variable"
- "Process eviction techniques terminate or remove running process."
- http://dbpedia.org/resource/System_image#Process_images

- "Identification of suspicious processes executing on an end-point device by examining the ancestry and siblings of a process, and the associated metadata of each node on the tree, such as process execution, duration, and order relative to siblings and ancestors."
- "## How it works
Process tree analysis techniques gather information on how a process was initiated to determine if a process is malicious. For example, if a process was not initiated from boot or not initiated by another process, that process is identified as suspicious. Also, if a new process was started before a process initiated by the device (ex. during boot) and that new process was not initiated by a user (which can be determined by examining process parameters such as type of process, its creator, source, etc.) the process is identified as suspicious.
For example, Microsoft Word may block execution of any subprocess that is not in an approved path.
## Considerations
* Attackers may spoof the parent PID (https://attack.mitre.org/techniques/T1502/), rendering such after-the-fact analysis on process lineage ineffective.
* Processes may hide from various means of detection; an example on Linux is where a rootkit might remove key files for the process from its directory in /proc.
* Zombie processes."
- "Process Lineage Analysis"